在完成升級前評估與準備工作後,接下來將進行實際的 Docker 環境升級操作。本篇將示範如何將 Docker Compose 部署的 Graylog 安全升級至 6.3 版本。
在開始升級前,必須進行完整的備份作業以確保資料安全。
# 備份 MongoDB 資料 - 使用與當前環境相容的版本
docker run --rm -v graylog_mongodb_data:/data/db \
-v $(pwd)/backup:/backup \
mongo:7.0 \
mongodump --db=graylog --archive=/backup/graylog-$(date +%Y%m%d).archive
版本選擇說明:根據 Graylog 6.3 的相容性矩陣,支援 MongoDB 5.0.7 至 8.x 版本。建議使用 mongo:7.0 映像檔進行備份與還原操作,以確保與目標環境的相容性。若目前使用的是 MongoDB 5.0.13,也可以使用相同版本的映像檔來執行備份操作。
# 備份 Graylog 資料與設定
tar -czf graylog-data-$(date +%Y%m%d).tar.gz \
graylog_data/ graylog_journal/ docker-compose.yml .env
透過 Web 介面匯出所有自訂的 Content Packs 作為設定備份,這包含了 Streams、Extractors、Pipelines 等重要配置。
更新 docker-compose.yml 或 .env 檔案中的版本標籤:
# 在 .env 檔案中更新版本
GRAYLOG_IMAGE="graylog/graylog:6.3"
或直接在 docker-compose.yml 中修改:
graylog:
image: "graylog/graylog:6.3"
# 拉取最新映像檔
docker compose pull
# 重新啟動服務
docker compose up -d
Docker Compose 會自動處理容器的重建,使用新版本的映像檔。
# 檢查所有容器狀態
docker compose ps
# 檢查 Graylog 日誌
docker compose logs graylog
登入 Graylog Web 介面,在「System」→「Overview」中確認版本已成功升級至 6.3。
升級成功後,可以清理舊版映像檔以釋放磁碟空間:
# 清理未使用的映像檔
docker image prune -f
# 檢視目前映像檔清單
docker images
若升級過程中遇到問題,可以快速回復到備份狀態:
# 停止服務
docker compose down
# 恢復 MongoDB 資料
docker run --rm -v graylog_mongodb_data:/data/db \
-v $(pwd)/backup:/backup \
mongo:7.0 \
mongorestore --archive=/backup/graylog-$(date +%Y%m%d).archive
# 恢復資料目錄
tar -xzf graylog-data-$(date +%Y%m%d).tar.gz
# 重新啟動服務
docker compose up -d
升級完成後,建議進行以下最終檢查:
透過 Docker Compose 進行 Graylog 升級相對簡潔,主要風險在於版本相容性問題。因此完整的備份策略和逐步驗證是確保升級成功的關鍵要素。